Method, memory and apparatus for automatically resizing a window while continuing to display information therein

ABSTRACT

A method, apparatus, and article of manufacture for directing a computer system, having at least a processor, user controls, and computer display, to automatically resize a window displayed on the computer display. The method includes the first step of in response to a command from user controls over a first portion of the window, determining whether the window is zoomed out. The second step includes if the window is not zoomed out, automatically resizing the window to a smaller size while continuing to display the contents of the window. The third step includes re-displaying on the computer display the window using the smaller size.

CROSS-REFERENCE TO RELATED APPLICATION

The present invention appears to claim subject matter disclosed in priorco-pending application, Ser. No. 08/626,219, IBM Docket No. AT9-95-036,filed on Mar. 29, 1996, co-pending application, Ser. No. 08/626,214, IBMDocket No. AT9-95-037, filed on Mar. 29, 1996, co-pending application,Ser. No. 08/626,196, IBM Docket No. AT9-95-038, filed on Mar. 29, 1996,and co-pending application, Ser. No. 08/626,751, IBM Docket No.AT9-96-039, filed on Mar. 29, 1996.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to graphical user interfaces (GUIs) andoperating systems of computing systems and, more particularly, but notby way of limitation, to a method, article of manufacture, and apparatusfor resizing windows.

2. Background Information and Description of Related Art

Many conventional operating systems, such as the Windows(TM), OS/2(TM),and AIX(TM) operating systems, utilize graphical user interface (GUI)desktop environments to organize computer objects. A GUI allows a userto graphically view and manipulate those objects as icons using a mouseor pointer. Conventional GUIs examine the object's identifier (e.g.,name), search a resource file for the identifier, and then display anicon representing the object according to the information stored in theresource file. The resource file contains information about each window,such as any initial value, the default color of the window, the defaultsize of the window, and the window's location on the display screen.Typically, the GUI reads the resource file once per session. When theuser double-clicks over an icon, the GUI opens the object (e.g., startsan application), displays a window and contents therein, andautomatically transfers focus to that window. When a window receivesfocus, the GUI transfers all input information, such as key strokes froma keyboard, to the object/application running in that window.

Objects may be simultaneously opened, creating a stack of windows thatthe GUI displays in a default size and location on the display screen.When the user single clicks over a window not positioned on top of thestack of windows, the GUI transfers focus from the window on the top ofthe stack to the new window. When a window receives focus, the GUIplaces that window on top of the stack of windows and, as previouslymentioned, queues any key strokes by the user from a keyboard to theobject/application running in that window.

Conventional GUIs provide three states for an object-maximized, default,and iconized (i.e., minimized). As previously mentioned, when a useropens a window, the GUI displays the window using a pre-determined size(i.e., a default state) and automatically transfers focus to it. Using amouse, the user can manually change the pre-determined size by adjustingthe position of the window's border edges. However, the process ofmanually resizing the window is tedious and time consuming.

Conventionally, the GUI provides two buttons (please see maximize button224 and minimize button 226 in FIG. 2) in a window's title bar thatallow the user to toggle between a maximized state and an iconizedstate. When a user maximizes a window, the window occupies all screenreal estate, thereby obscuring the view of other windows. On the otherhand, the iconized state occupies little space, but does not display thecontents of its running application. Obviously, this is adisadvantageous state when the user needs to view the contents of arunning application.

Disadvantages and limitations of the above described system occurbecause the desktop is typically cluttered with many open defaultwindows that occupy large amounts of real estate, preventing the userfrom viewing several desired windows. For example, if a user desires tocut and paste information from one window into several windows, the usermust have those windows open with full view. To do so, the usertypically opens each window in a default state and then manually resizesthem so that they fit on the display screen. Again, this process istedious and time consuming.

Accordingly, there is a need for an enhanced user interface thatautomatically resizes (e.g., reduces the size of) all windows not havingfocus and, further, allows the user to easily and selectively re-sizeactive windows without iconizing them.

SUMMARY OF THE INVENTION

In accordance with the present invention, a method, apparatus, andarticle of manufacture direct a computer system to automatically resizea window displayed on a display screen. The method includes the firststep of, in response to a command from user controls over a firstportion of the window, determining whether the window is zoomed out. Thesecond step includes if the window is not zoomed out, automaticallyresizing the window to a smaller size while continuing to display thecontents of the window. The third step includes re-displaying on thecomputer display the window using the smaller size.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a schematic diagram of an example hardwareenvironment for implementing the present invention.

FIG. 2 illustrates a GUI display window for displaying a default windowhaving focus and zoomed out windows.

FIG. 3 is a flow chart illustrating detailed logic for implementing thepreferred embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The following detailed description is of the best presently contemplatedmode for carrying out the invention. However, this detailed descriptionis not to be viewed in a limiting sense, but is made merely for thepurpose of illustrating the general principles of the invention, thescope of which is only defined by the appended claims.

The preferred embodiment may be practiced in any suitable hardwareconfiguration, such as computing system 100 illustrated in FIG. 1 or,alternatively, in a laptop or notepad computing system. Computing system100 includes any suitable central processing unit 10, such as a standardmicroprocessor, and any number of other objects interconnected viasystem bus 12. For purposes of illustration, computing system 100includes memory, such as read only memory (ROM) 16, random access memory(RAM) 14, and peripheral memory devices (e.g., disk or tape drives 20)connected to system bus 12 via I/O adapter 18. Computing system 100further includes display adapter 36 for connecting system bus 12 todisplay device 38. User interface adapter 22 connects system bus 12 touser controls, such as keyboard 24, speaker 28, mouse 26, touchpad 32,or any other user input device (e.g.,a touch screen (not shown)).

One skilled in the art readily recognizes how a user utilizes a mouseand mouse cursor to initiate the manipulation of objects in a graphicaluser interface. For example, a user can drag and drop object icons in awindow using a mouse and mouse cursor. Moreover, a user can open and/orclose objects by positioning a mouse cursor over the icon anddouble-clicking one of the mouse's buttons (herein referred to as"double clicking").

A graphical user interface (GUI) of the preferred embodiment resideswithin a computer-readable media and allows a user to initiate themanipulation of objects. Any suitable computer-readable media may retainthe GUI (e.g. windowmanager), such as ROM 16, RAM 14, disk and/or tapedrive 20 (e.g., magnetic diskette, magnetic tape, CD-ROM, optical disk,or other suitable storage media). Further, in the preferred embodiment,the GUI interfaces the user to the AIX™ operating system. The GUI may beviewed as being a part of the operating system. Any suitable operatingsystem or desktop environment could be utilized. While the GUI merelyinstructs and directs CPU 10, for ease in explanation, the GUI will bedescribed as performing the following features and functions.

FIG. 2 illustrates a display screen 200 for displaying various windowsaccording to the preferred embodiment. One skilled in the art readilyrecognizes that any number of windows could be displayed. Window 210 isin a default state and has focus. Because window 210 has focus, the GUIplaces it on top of the stack of other windows. However, at the time theGUI passed focus to window 210, the GUI "zoomed out" the window losingfocus, if any (e.g., either window 220 or 230). The other window wouldalready have been zoomed out unless the user un-zoomed the window(described herein). Zoomed out windows 220 and 230 are open and continueto display some or all their original contents (i.e., contents displayedin the default state), but their height and width dimensions areautomatically reduced in size so that the window occupies less space ondisplay screen 200. In the preferred embodiment, the contents displayedin a zoomed out window are proportionally reduced according to theamount of size reduction of the window. Therefore, the entire window isreduced in size. Alternatively, the contents could remain the originalsize, and only the dimensions of the window would be reduced, therebydisplaying less of the contents.

The percentage of window reduction depends on the size of the displayscreen, the original size (i.e., default size) of the window at the timeimmediately before being zoomed out, and the number of windows displayedon the screen. However, there is a minimum and maximum range ofreduction, such that a window is never reduced more than 70% or lessthan 30%. The following formula is stored in a system table and is usedto calculate the zoomed out height and width of a window.

30%<Zoomed out window height= (Original window size height)² /Screensize height!* 1+1/(number of windows displayed on the screen)<70%

30%<Zoomed out window width= (Original window size width)² /Screen sizewidth!* 1+1/(number of windows displayed on the screen)<70%

Alternatively, other zoomed out formulas and/or percentages of reductioncould be used without departing from the scope of the invention.

Windows 210, 220 and 230 each include zoomed out button 212, 222 or 232,respectively, which allow the user to toggle the respective windowbetween the default state (size) and the zoomed out state (size).

Accordingly, the preferred embodiment allows the user to view multiplewindows on a screen by automatically zooming out all windows not havingfocus. Further, the user can selectively toggle a window between thezoomed out state and the default state.

The GUI of the preferred embodiment directs the performance of the stepsillustrated in the detailed logic of FIG. 3. At 300, a user or operatingsystem opens a particular object. For example, the user could doubleclick over an icon to open a dynamic link library directory or open adirectory containing files from several applications. At 310, the GUIreads a conventional system table previously loaded into RAM 14. Theoperating system initially builds the system table and continues toupdate it each time the user adds/changes an object. However, dependingon the number of objects, the system table may be a master table foridentifying the location of one or more objects. In any event, thesystem table now contains information needed to zoom and un-zoom anywindow in that session. For example, the system table includes thezoomed out formulas listed above, whether the zoomed out state of thewindow has been invoked, whether the window has focus, the size of thewindow, the zoomed out size, and the location of the left upper cornerof the window on the screen. The table below illustrates a system tablecontaining zoomed out information for a 1000 by 1000 pixel displayscreen:

                  SYSTEM TABLE    ______________________________________            Zoomed    Objects Out Size  Zoom   Default Size                                     Focus                                          Window Loc.    ______________________________________    Path/Name1            333 by 333                      Yes    500 by 500                                     No    50, 100    Path/Name2            120 by 213                      No     300 by 400                                     Yes  200, 150    Path/Name3            120 by 333                      Yes    300 by 500                                     No   100, 100    ______________________________________

The GUI reads the values for the selected object in the system table anddisplays a window defined by those values and the information found inthe resource file. Next, at 312, an event loop is processed. At 314, ifthe GUI detects an event (e.g., mouse click) over a zoomed out button,at 316, the GUI examines the zoom column of the system table todetermine if the window has been zoomed out. If so, at 318, the GUIre-displays the window using the default size and window location. Ifnot, at 322, the GUI calculates the zoomed out size according to theformula delineated above and, at 324, displays the window using thezoomed out size and default window location.

At 320, if the GUI detects that a window is losing focus because theuser has clicked on another window or opened a new window, at 322, theGUI calculates the zoomed out size for the window losing focus. At 324,the GUI re-displays that window using the zoomed out size. The GUIcontinues to display that window in a zoomed out state (i.e., size) forthat session until the user un-zooms it (i.e., clicks over its zoomedout button), or until the window regains focus.

At 330, if the GUI detects the user invoking an object/application(e.g., double clicking over an object icon) and, at 332, and if the GUIdetects key strokes while the GUI is passing focus to the new window, at334, the GUI maps the new window to the screen using the default sizeand window location, but does not transfer focus to the newly openedwindow until the user clicks on the new window. Otherwise, the GUIdisplays the new window using the default size and passes focus to it asit would any newly-opened window.

While the invention has been shown and described with reference to aparticular embodiment thereof, it will be understood by those skilled inthe art that the foregoing and other changes in form and detail may bemade therein without departing from the spirit and scope of theinvention.

What is claimed is:
 1. A method for directing a computer system, having at least a processor, user controls, and computer display, to automatically resize a window displayed on the computer display, the window displaying information, comprising the steps of:in response to a command from user controls over a portion of the window, determining whether the window is in a zoomed out size; if the window is not in the zoomed out size, automatically resizing the window to the zoomed out size while continuing to display the information in the window, said step of automatically resizing the window to the zoomed out size further comprising the steps of:determining height and width dimensions of the window and computer display; squaring the dimensions of the height for the window; dividing the square of the height by the height of the computer display to create a first resultant; dividing one by a total number of windows displayed on the computer display and adding one thereto, creating a second resultant; and multiplying the first resultant by the second resultant to create a third resultant for height; if the third resultant is greater than 30% of the height of the window and less than 70% of the height of the window, assigning the third resultant as the zoomed out size for height; if the third resultant is less than 30% of the height of the window, reducing the height of the window by 70%; if the third resultant is greater than 70% of the height of the window, reducing the height of the window by 30%; and repeating the above steps for the width of the window; and if the window is in the zoomed out size, automatically enlarging the window to a default size.
 2. The method according to claim 1 wherein the portion of the window comprises a zoomed out button object.
 3. A computer system for automatically resizing a window displayed in a default state on a computer display, the window displaying information, comprising:user controls; key board; in response to a command from user controls over a first portion of the window, means for determining whether the window is in a zoomed out size; if the window is not in the zoomed out size, means for automatically resizing the window to the zoomed out size while continuing to display the information in the window, said means for automatically resizing the window to the zoomed out size further comprising:means for determining height and width dimensions of the window and computer display; means for squaring the dimensions of the height for the window; means for dividing the square of the height by the height of the computer display to create a first resultant; means for dividing one by a total number of windows displayed on the computer display and adding one thereto, creating a second resultant; and means for multiplying the first resultant by the second resultant to create a third resultant for height; means for assigning the third resultant as the zoomed out size for height if the third resultant is greater than 30% of the height of the window and less than 70% of the height of the window, assigning the third resultant as the zoom out size for height; means for reducing the height of the window by 70% if the third resultant is less than 30% of the height of the window, reducing the height of the window by 70%; means for reducing the height of the window by 30% if the third resultant is greater than 70% of the height of the window, reducing the height of the window by 30%; and means for repeating the above for the width of the window ; and if the window is in the zoomed out size, means for automatically enlarging the window to a default size.
 4. An article of manufacture, comprising:a computer usable medium having computer readable program code means embodied therein for directing a computer system, having at least a processor, user controls, key board, and computer display, to automatically resize a window displayed on the computer display, the window displaying information the computer usable medium comprising:in response to a command from user controls over a first portion of the window, first computer readable program code means for causing the computer system to determine if the window is in a zoomed out size; if the window is not in the zoomed out size, second computer readable program code means for causing the computer system to automatically resize the window to the zoomed out size while continuing to display the information, said second computer readable program code means further including:instruction means for determining height and width dimensions of the window and computer display; instruction means for squaring the dimensions of the height for the window; instruction means for dividing the square of the height by the height of the computer display to create a first resultant; instruction means for dividing one by a total number of windows displayed on the computer display and adding one thereto, creating a second resultant; and instruction means for multiplying the first resultant by the second resultant to create a third resultant for height; instruction means for assigning the third resultant as the zoomed out size for height if the third resultant is greater than 30% of the height of the window and less than 70% of the height of the window, assigning the third resultant as the zoom out size for height; instruction means for reducing the height of the window by 70% if the third resultant is less than 30% of the height of the window, reducing the height of the window by 70%; instruction means for reducing the height of the window by 30% if the third resultant is greater than 70% of the height of the window, reducing the height of the window by 30%; and instruction means for repeating the above for the width of the window; and if the window is in the zoomed out size, third computer readable program code means for causing the computer system to automatically enlarge the window to a default size. 